Java代码HTML转换PDF,这样就搞定了! 您所在的位置:网站首页 html转word java Java代码HTML转换PDF,这样就搞定了!

Java代码HTML转换PDF,这样就搞定了!

2023-03-29 12:46| 来源: 网络整理| 查看: 265

哈喽,今天是一篇HTML to PDF速食指南。

Java 转换 HTML 到PDF有许多类库,今天我们介绍一下第三方免费的类库OpenPDF。

PS:最近是跳槽的高峰期,我连日加班好多天,整理出了包含16000 多道面试题的面试宝典,并且会持续更新这份面试宝典中的题目,希望它能帮助大家找到自己心仪的工作!【文内有惊喜】

领取姿势2022最新版 Java 面试宝典面试官整理系列 PDF 高清下载

这位BAT大佬写的Leetcode刷题笔记,让我offer拿到手软

1. OpenPDF

OpenPDF是免费的Java类库 ,遵从LGPL 和 MPL协议,所以基本上能够可以随意使用。OpenPDF是基于iTEXT的,目前来说也是维护的比较好的Java操作PDF的开源软件。

话不多说,且看所需要的依赖,

org.jsoup jsoup 1.13.1 com.openhtmltopdf openhtmltopdf-core 1.0.6 com.openhtmltopdf openhtmltopdf-pdfbox 1.0.6

jsoup可以将html文件转换成输入流等,也可以遍历html的DOM节点,提取元素及样式等。

2. 示例

本篇示例将以下html文件转换成pdf

.center_div { border: 1px solid #404e94; margin-left: auto; margin-right: auto; background-color: #f6d0ed; text-align: left; padding: 8px; } table { width: 100%; border: 1px solid black; } th, td { border: 1px solid black; } body,html,input{font-family:"msyh";} Hello java North!

convert html to pdf.

ROLE NAME TITLE MARKSMAN ASHE THE FROST ARCHER MAGES ANNIE THE DARK CHILD 射手 凯塔琳 皮城女警

以上html用浏览器打开如下,乱码是因为中文字体不识别,下面转换的时候会加载对应的字体来进行转换。

使用Java转换HTML到PDF代码如下:

public class HtmlToPDFOpenSource { public static void main(String[] args) throws IOException { HtmlToPDFOpenSource htmlToPDFOpenSource = new HtmlToPDFOpenSource(); htmlToPDFOpenSource.generatePdfByOpenhtmltopdf(); } private void generatePdfByOpenhtmltopdf() throws IOException { File inputHtml = new File("E:\\javaNorth\\java-study-note\\javaOpenSource\\src\\main\\resources\\test.html"); //加载html文件 Document document = Jsoup.parse(inputHtml, "UTF-8"); document.outputSettings().syntax(Document.OutputSettings.Syntax.html); //引入资源目录,可以单独引入css,图片文件等 String baseUri = FileSystems.getDefault() .getPath("javaOpenSource\\src\\main\\resources") .toUri().toString(); try (OutputStream os = new FileOutputStream("javaOpenSource\\src\\main\\resources\\testOpenLeagueoflegends1.pdf")) { PdfRendererBuilder builder = new PdfRendererBuilder(); builder.withUri("javaOpenSource\\src\\main\\resources\\testOpenLeagueoflegends1.pdf"); builder.toStream(os); builder.withW3cDocument(new W3CDom().fromJsoup(document), baseUri); //引入指定字体,注意字体名需要和css样式中指定的字体名相同 builder.useFont(new File("javaOpenSource\\src\\main\\resources\\fonts\\msyh.ttf"),"msyh",1,BaseRendererBuilder.FontStyle.NORMAL, true); builder.run(); } } }

使用Java代码转换成PDF如下(示例中使用了微软雅黑中文字体):

上述html文件中增加如下外部样式

并在resources目录下添加style.css文件,重新生成PDF文件如下。

3. 总结

本片介绍了使用OpenPDF将html文件转换成PDF文件。同时也使用了自定义字体,外部样式。但是以下几点需要格外注意。

Java代码中加载的字体名称要和HTML引用的CSS样式中的字体名相同 ({font-family:"msyh";})。 HTML文件标签节点必须闭合( ).否则解析会失败。

这位BAT大佬写的Leetcode刷题笔记,让我offer拿到手软

2022最新版 Java 面试宝典面试官整理系列 PDF 高清下载

全部示例在此:https://github.com/javatechnorth/java-study-note/tree/master/javaOpenSource/src/main/java/pdf



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有